package cn.lin.mapper;

import cn.lin.domain.Sign;
import cn.lin.domain.SignUser;
import cn.lin.domain.User;
import io.lettuce.core.dynamic.annotation.Param;

import java.util.List;

/**
 * @author cn.Lin
 * @create 2024-12-04-13:57
 */
public interface SignMapper {

    /**
     * 发起签到
     */
    int initiateSignIn(Sign sign);

    /**
     * 签到时需要根据课堂id查询到对应的班级id，再通过班级id查询对应班级内的学生有哪些
     * @param classroomId 班级id
     */
    List<User> findUserByClassroomId(@Param("classroomId") Integer classroomId);

    /**
     * 将签到信息插入数据库
     * @param signId 签到id
     * @param userList 签到学生列表
     */
    int insertSignInStu(@Param("signId") Integer signId,
                        @Param("userList") List<User> userList);

    /**
     * 根据签到id查询签到学生列表
     * @param signId 签到次id
     */
    List<SignUser> listUserBySignId(@Param("signId") Integer signId,
                                    @Param("teacherId") Integer teacherId);

    /**
     * 更新签到状态
     * @param signUser 签到对象
     */
    int updateSignInStu(SignUser signUser);

}
